/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package org.cip.esymons.colegiatura.be;

import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;
import org.cip.esymons.general.be.Especialidad;

/**
 *
 * @author ADMINISTRADOR
 */
@Entity
@Table(name = "col_derechos_autor")
//@NamedQueries({@NamedQuery(name = "DerechosAutor.findAll", query = "SELECT d FROM DerechosAutor d"), @NamedQuery(name = "DerechosAutor.findByCdaCodigo", query = "SELECT d FROM DerechosAutor d WHERE d.cdaCodigo = :cdaCodigo"), @NamedQuery(name = "DerechosAutor.findByCdanombreTesis", query = "SELECT d FROM DerechosAutor d WHERE d.cdanombreTesis = :cdanombreTesis"), @NamedQuery(name = "DerechosAutor.findByCdaformaTexto", query = "SELECT d FROM DerechosAutor d WHERE d.cdaformaTexto = :cdaformaTexto"), @NamedQuery(name = "DerechosAutor.findByCdafechaRegistro", query = "SELECT d FROM DerechosAutor d WHERE d.cdafechaRegistro = :cdafechaRegistro")})
public class DerechosAutor implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "cda_codigo")
    private Integer cdaCodigo;
    @Basic(optional = false)
    @Column(name = "cda_nombreTesis")
    private String cdanombreTesis;
    @Basic(optional = false)
    @Column(name = "cda_formaTexto")
    private int cdaformaTexto;
    @Basic(optional = false)
    @Column(name = "cda_fechaRegistro")
    @Temporal(TemporalType.DATE)
    private Date cdafechaRegistro;
    //Relaciona la especialidad del colegiado
    @JoinColumn(name = "esp_codigo", referencedColumnName = "esp_codigo")
    @ManyToOne(optional = false, fetch = FetchType.LAZY)
    private Especialidad espCodigo;
    //relaciona con colegiado
    @JoinColumn(name = "col_codigo", referencedColumnName = "col_codigo")
    @ManyToOne(optional = false, fetch = FetchType.LAZY)
    private Colegiado colCodigo;


    @Transient
    private String casilla;

    public String getCasilla() {
        return casilla;
    }

    public void setCasilla(String casilla) {
        this.casilla = casilla;
    }

    public DerechosAutor() {
    }

    public DerechosAutor(Integer cdaCodigo) {
        this.cdaCodigo = cdaCodigo;
    }

    public DerechosAutor(Integer cdaCodigo, String cdanombreTesis, int cdaformaTexto, Date cdafechaRegistro) {
        this.cdaCodigo = cdaCodigo;
        this.cdanombreTesis = cdanombreTesis;
        this.cdaformaTexto = cdaformaTexto;
        this.cdafechaRegistro = cdafechaRegistro;
    }

    public Integer getCdaCodigo() {
        return cdaCodigo;
    }

    public void setCdaCodigo(Integer cdaCodigo) {
        this.cdaCodigo = cdaCodigo;
    }

    public String getCdanombreTesis() {
        return cdanombreTesis;
    }

    public void setCdanombreTesis(String cdanombreTesis) {
        this.cdanombreTesis = cdanombreTesis;
    }

    public int getCdaformaTexto() {
        return cdaformaTexto;
    }

    public void setCdaformaTexto(int cdaformaTexto) {
        this.cdaformaTexto = cdaformaTexto;
    }

    public Date getCdafechaRegistro() {
        return cdafechaRegistro;
    }

    public void setCdafechaRegistro(Date cdafechaRegistro) {
        this.cdafechaRegistro = cdafechaRegistro;
    }

    public Especialidad getEspCodigo() {
        return espCodigo;
    }

    public void setEspCodigo(Especialidad espCodigo) {
        this.espCodigo = espCodigo;
    }

    public Colegiado getColCodigo() {
        return colCodigo;
    }

    public void setColCodigo(Colegiado colCodigo) {
        this.colCodigo = colCodigo;
    }

    public String getFechaRegistroFicha(){

        String day,m,anno,fecha = null;
        SimpleDateFormat dia = new SimpleDateFormat("dd");
        SimpleDateFormat mes = new SimpleDateFormat("MMMM");
        SimpleDateFormat year = new SimpleDateFormat("yyyy");
        day = dia.format(cdafechaRegistro);
        m = mes.format(cdafechaRegistro);
        anno = year.format(cdafechaRegistro);
        fecha = day+" de "+m+" de "+anno;
        return fecha;

    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (cdaCodigo != null ? cdaCodigo.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof DerechosAutor)) {
            return false;
        }
        DerechosAutor other = (DerechosAutor) object;
        if ((this.cdaCodigo == null && other.cdaCodigo != null) || (this.cdaCodigo != null && !this.cdaCodigo.equals(other.cdaCodigo))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "org.cip.esymons.colegiatura.be.DerechosAutor[cdaCodigo=" + cdaCodigo + "]";
    }

}
